package br.com.pep.bean;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import br.com.pep.DAO.UsuarioDAO;
import br.com.pep.model.Usuario;
import br.com.pep.test.UsuarioTest;
import br.com.pep.util.JSFUtil;

/**
 * Classe responsavel por logar o sistema;
 * 
 * @author Lorranz
 *
 */
@ManagedBean(name = "MBLogin")
@SessionScoped
public class LoginBean {
	private static final Logger LOGGER = LogManager.getLogger(LoginBean.class);
	private static final Logger LOGGER_PADRAO = LogManager.getRootLogger();

	private Usuario user = new Usuario();
	private List<Usuario> listUser = new ArrayList<Usuario>();
	private UsuarioDAO dao = new UsuarioDAO();

	public Usuario getUser() {
		return user;
	}

	public void setUser(Usuario user) {
		this.user = user;
	}

	public List<Usuario> getListUser() {
		return listUser;
	}

	public void setListUser(List<Usuario> listUser) {
		this.listUser = listUser;
	}

	/**
	 * Metodo responsavel por listar os usuarios
	 */
	@PostConstruct
	public void listarUsuarios() {
		try {
			listUser = dao.listar();
		} catch (Exception e) {
			LOGGER.error(e.getMessage(), e);
		}

	}

	/**
	 * Metodo responsavel por realizar o login
	 * 
	 * @return retorna uma String
	 */
	public String logar() {
		for (Usuario usuario : listUser) {
			if (user.getLogin().equals(usuario.getLogin())
					&& user.getSenha().equals(usuario.getSenha())) {
				JSFUtil.adicionarMensagemSucesso("Login efetuado com sucesso");
				return "principal";
			}
		}
		return "login";
	}
}